package com.ruoyi.store.service.impl;

import com.ruoyi.store.mapper.StockInDetailMapper;
import com.ruoyi.store.service.IStockInDetailService;
import com.ruoyi.system.api.domain.store.StockInDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 入库记录详情Service业务层处理
 *
 * @author lmj
 * @date 2024-10-31
 */
@Service
@Transactional
@Slf4j
public class StockInDetailServiceImpl implements IStockInDetailService {
    @Autowired
    private StockInDetailMapper stockInDetailMapper;

    /**
     * 查询入库记录详情
     *
     * @param id 入库记录详情主键
     * @return 入库记录详情
     */
    @Override
    public StockInDetail selectStockInDetailById(Integer id) {
        return stockInDetailMapper.selectStockInDetailById(id);
    }

    /**
     * 查询入库记录详情列表
     *
     * @param stockInDetail 入库记录详情
     * @return 入库记录详情
     */
    @Override
    public List<StockInDetail> selectStockInDetailList(StockInDetail stockInDetail) {
        return stockInDetailMapper.selectStockInDetailList(stockInDetail);
    }

    /**
     * 新增入库记录详情
     *
     * @param stockInDetail 入库记录详情
     * @return 结果
     */
    @Override
    public int insertStockInDetail(StockInDetail stockInDetail) {
        return stockInDetailMapper.insertStockInDetail(stockInDetail);
    }

    /**
     * 修改入库记录详情
     *
     * @param stockInDetail 入库记录详情
     * @return 结果
     */
    @Override
    public int updateStockInDetail(StockInDetail stockInDetail) {
        return stockInDetailMapper.updateStockInDetail(stockInDetail);
    }

    /**
     * 批量删除入库记录详情
     *
     * @param ids 需要删除的入库记录详情主键
     * @return 结果
     */
    @Override
    public int deleteStockInDetailByIds(Integer[] ids) {
        return stockInDetailMapper.deleteStockInDetailByIds(ids);
    }

    /**
     * 删除入库记录详情信息
     *
     * @param id 入库记录详情主键
     * @return 结果
     */
    @Override
    public int deleteStockInDetailById(Integer id) {
        return stockInDetailMapper.deleteStockInDetailById(id);
    }

    @Override
    public List<StockInDetail> getStockInDetail(Integer[] idArray) {
        log.info("StockInDetailServiceImpl getStockInDetail params:{}", (Object) idArray);
        List<StockInDetail> stockInDetails = stockInDetailMapper.getStockInDetailByIds(idArray);
        return stockInDetails;
    }

    /**
     * @return com.ruoyi.common.core.web.domain.AjaxResult
     * @description 根据入库单id查询入库记录
     * @date 2024/11/4 下午2:50
     * @Param stockInId:
     **/
    public List<StockInDetail> getStockInDetailListByStockInId(Integer stockInId) {
        //封装查询条件
        StockInDetail stockInDetail = new StockInDetail();
        stockInDetail.setStockInId(stockInId);
        List<StockInDetail> stockInDetailList = stockInDetailMapper.selectStockInDetailList(stockInDetail);
        log.info("StockInDetailServiceImpl getStockInDetailListByStockInId params:{},result:{}", stockInId, stockInDetailList);
        return stockInDetailList;
    }
}
